新增原生平台支持,Cocos Creator 3D v1.0.3 正式发布
Hi,各位开发者,经过一段时间的测试验证,Cocos Creator 3D v1.0.3 今日正式发布啦!这个版本可以说是 Cocos Creator 3D 自诞生以来最重要的一个版本,或者说是真正的完全体!因为从 v1.0.3 开始 Cocos Creator 3D 正式支持原生平台。
除了继续扩大平台支持以外,在易用性和上手门槛上我们也做了大量的优化工作,以及无数细节上的功能增强,相信这个版本可以满足绝大部分轻度休闲品类游戏的制作。
在 2020 年春节后,引擎组将继续投入到 v1.1 的开发当中去,届时我们会有更多重要的功能特性更新以及性能优化,将会不断提升 Cocos Creator 3D 产品的优势以及对品类的支撑能力。
欢迎大家移步官网下载使用!以下是 v1.0.3 完整更新说明。为保证阅读体验,[参考链接]统一放在文末!
1. 原生平台支持
从 v1.0.3 开始,大家可以正式打包 iOS、Android、Windows、Mac OS X 原生包,继续基于 Creator 一直以来的原生积累,提供给大家最统一的跨平台开发体验。原生发布的详细使用说明请参考[发布文档]
2. 小游戏平台支持
我们继续新增了 [Cocos Play]、小米快游戏、支付宝小游戏三个小游戏平台的支持,请大家参考[各个平台的发布文档]。
3. Async Await !
对!我们响应大家的呼唤,提前了 Async Await 的支持,只需要在构建时,勾选 “异步函数”/"Async Functions" 就可以自由在项目中使用了。除此之外,脚本系统还增加了一些新的特性支持,比如:
选链(Optional Chaining)支持
空值合并(Nullish Coalescing)支持
移除 INode 和 IBaseNode
某些循环引用行为将在运行检测并作出警告
增加 core-js polyfills 来帮助部分平台补全 ES6 支持
4. 动画编辑器优化
v1.0.3 动画编辑器增加了分量动画功能,支持针对 Vec2、Vec3、Vec4、Color 等类型的分量拆分轨道制作动画帧。
同时还增加了同类型的属性轨道的复制、粘贴功能(目前仅支持单轨道);在选中多个关键帧后高亮中间线条,并支持拖拽中间线条来移动关键帧。
5. 增加 Ammo.js 物理模块
为了尝试提供更多的可能性,我们增加了 Ammo.js 物理后端,会在将来支持 wasm 构建出的 Ammo 物理引擎(原生实现是 bullet),将会给物理游戏赋予更高的性能和更多可能性。物理方面,我们还初步增加了胶囊体支持(暂时仅支持 builtin)。
6. 重构 Tween 模块
之前 Tween 模块的使用方式不是非常友好,在内部的审核和讨论后,我们决定将这个模块的 API 和使用方式和 Cocos Creator 2.x 统一起来,在 v1.0.3 中已完成重构,请[参考文档]。
7. UI 功能强化
UI 做了大量的功能强化工作,比如:
Editbox 重构和跨平台支持优化
透明度级联组件 UIOpacity
Mask 反向遮罩功能
多点触摸开关功能
8. 带搜索功能的添加组件窗口
在节点 Inspector 中,用户选择添加组件时,将看到组织更清晰的组件选择面板,还可以通过搜索来快速寻找想要添加的组件。
部分注意事项和 Breaking Changes
1. Ammo.js 物理后端已知问题
刚体球和盒碰撞时存在抖动(会影响到表现和事件)
物理材质的回弹系数比较大时,会导致事件不准确
使用物理 ammo.js 时,刚体组件的 Factor 属性在底层的中的表现作用在力和冲量上,与 cannon.js 不同( cannon.js 作用在速度上面,未来可能会调整成一样的)
2. 材质和合批
蒙皮模型和动态合批的开关全部挪到了材质里,虽然导入 glTF 生成的材质和目前项目已有的材质做了迁移,但任何接下来用户直接新建的材质,都需要在材质里手动指定是否要开启蒙皮或合批
由于资源化渲染管线对启动顺序的影响,所有用户脚本内,在 require 时期创建的 material 将全部失效,最后显示效果为纯黄色(effect 丢失),需要挪到 onLoad 等时期再创建
3. 平台特性支持
除了微信小游戏平台外,暂时还不支持小米和支付宝小游戏平台上的分包功能,此功能会在以后版本完善。
在打包微信小游戏过程中,如果你勾选了引擎插件功能,会发现有报错,请按照[这个说明贴]中的方法进行修复,这些修复也将合并在下一个版本中。
4. TexturePacker 支持
3D 引擎中不再支持 3.x 版本以下的图集格式,导入是会报错的,推荐使用的版本是 4.x。
编辑器详细更新说明
[FEATURE]支持原生平台构建(Mac、Windows、Android、iOS)
[FEATURE]支持 Cocos Play、小米快游戏、支付宝小游戏三个小游戏平台支持
[FEATURE]动画编辑器重构,新增 Vec2、Vec3、Color 的分量动画曲线支持
[FEATURE]动画编辑器增加同类型的属性轨道复制/粘贴功能
[FEATURE]选中关键帧后高亮中间线条,并允许拖拽中间线条移动关键帧
[FEATURE]支持在构建时勾选异步函数来开启 Async Await 等函数支持
[FEATURE]新增带搜索功能的添加组件窗口
[FEATURE]完善实验室版本地形系统,优化编辑体验,地形数据资源化
[FEATURE]添加 UI 空间的对齐按钮(场景面板顶部 Toolbar)
[FEATURE]Inspector 面板允许复制组件和只粘贴值
[FEATURE]为模型导入切割出的子动画提供 FPS 设置功能
[FEATURE]新增 RenderTexture 资源类型(.rt)
[FEATURE]立方体贴图导入器添加贴图参数设置
[FEATURE]Material 面板上新增定位 Effect 文件的功能
[FEATURE]层级管理器面板和资源管理器面板的右键菜单中新增拷贝 uuid 和 path 功能
[FEATURE]增强地形编辑功能
[FEATURE]新增资源面板右键菜单及功能:在文件夹内搜索
[FEATURE]新增其他小游戏平台的自定义构建模板支持
[FEATURE]增加了 core-js polyfills,在各个平台完善 ES6 支持
[FEATURE]新增实验室功能:资源化的 Programmable Rendering Pipeline
[IMPROVE]重构构建流程,完全插件化,让平台扩充更轻松
[IMPROVE]重构 Undo/Redo 系统
[IMPROVE]独立实现编辑器依赖的数学库
[IMPROVE]修改 RenderableComponent的材质动画属性为 materials
[IMPROVE]在属性检查器中编辑图片资源时,对应的 sub asset 也一同显示可以编辑
[IMPROVE]将 gizmo 的材质引用变为运行时的材质实例
[IMPROVE]完善场景内材质资源的迁移流程,支持 sub asset 级迁移
[IMPROVE]统一新建资源和节点的名称格式
[IMPROVE]优化 FBX 导入时的贴图查找算法
[IMPROVE]模型资源 FBX & glTF 的 inspector 面板支持多语言
[IMPROVE]FBX 和 Javascript 资源导入器的多语言提示
[IMPROVE]对包含蒙皮模型的 glTF 模型导出的材质中自带骨骼动画支持
[IMPROVE]优化了某些导入器的报错消息,附加上了被导入资源的 UUID
[IMPROVE]防止资源面板数据迁移时报错的情况下导致的死循环问题
[IMPROVE]场景面板 Toolbar 插件化
[IMPROVE]节点编辑状态下优化材质编辑的方式,改为在同一个界面同时显示组件和材质信息
[IMPROVE]加快创建 prefab 节点时层级面板上的显示速度
[IMPROVE]减少生成多节点时的查询次数
[IMPROVE]防止一些情况下在场景初始化之前发送 ipc 请求
[IMPROVE]新增私有节点时层级面板增加容错机制
[IMPROVE]将摄像机预览面板从开发者菜单移到面板菜单下
[IMPROVE]在构建时自动检测引擎修改以及重新构建引擎
[IMPROVE]增加打开版本不匹配或项目类型不匹配时的警告
[IMPROVE]增加偏好设置面板的 saving 提示
[IMPROVE]优化退出动画编辑模式时面板闪烁的问题
[IMPROVE]在脚本资源 library 缺失时不报错
[IMPROVE]优化各个面板使用的 ui 和图标
[FIX]修复粒子 Gizmo 位置和渲染可能不正确的问题
[FIX]修复 prefab 里的动画编辑退出后 info bar 消失的问题
[FIX]修复了材质属性面板贴图可能不显示的问题
[FIX]修复了节点折叠状态在切换编辑模式后还原不正确的问题
[FIX]修复了某些特殊的 binary 格式 glTF 模型无法解析的问题
[FIX]修复了某些情况下,构建脚本时脚本会被重复包含的问题
[FIX]修复了循环引用提示功能里面,对 type-only-used 标识符的错误处理
[FIX]修复动画挂点无法正确获取的问题
[FIX]修复 FBX 属性检查器页面 dump material 无法使用的问题
[FIX]修复资源移动因 .meta 文件存在而被阻止的问题
[FIX]修复 Mac 平台构建的时候资源可能被删除的问题
[FIX]修复粒子 multiply effect 计算错误
[FIX]修复 prefab 节点在丢失资源的情况下 undo 报错
[FIX]修复删除部分组件后 undo 报错
[FIX]修复动画编辑中无法复制资源关键帧的问题
[FIX]修复动画编辑器中对 sprite frame 属性进行 undo 的问题
[FIX]修复取消选中节点后动画编辑器的状态显示
[FIX]修复动画编辑器中材质的贴图属性无法打关键帧的问题
[FIX]修复退出动画编辑,prefab 会重新生成节点的问题
[FIX]修复场景相机离模型很近时,无法使用移动 Gizmo 的问题
[FIX]修复粒子组件曲线角度值的显示
引擎详细更新列表
[FEATURE]完善物理多后端支持,新增 Ammo.js 后端
[FEATURE]将 Tween API 与 Cocos Creator 2.x 同步
[FEATURE]SpriteComponent 组件新增 tiled 模式
[FEATURE]给 PhysicsSystem 添加 useFixedTime 属性以避免事件不准确和抖动的问题
[FEATURE]Builtin 物理中新增胶囊体(暂不支持其他物理引擎)
[FEATURE]新增 UIOpacity 组件用于实现 UI 节点的透明度级联
[FEATURE]在 Camera 组件中提供 3D 世界坐标系转换到 UI 节点坐标系的方法 convertToUINode
[FEATURE]Mask 支持使用 Graphics 作为蒙版(使用方法可参考 test-cases-3d)
[FEATURE]Mask 组件支持反向遮罩
[FEATURE]新增多点触控开关:macro.ENABLE_MULTI_TOUCH
[FEATURE]动画系统支持分量和 Uniform 属性作为动画数据
[FEATURE]实验室版本可编程渲染管线初步实现
[IMPROVE]优化引擎构建流程,缩减引擎构建包体
[IMPROVE]重构 Model 的内存管理模式
[IMPROVE]支持计算骨骼动画的包围盒
[IMPROVE]重构 AnimationClip,使用动画数据仓库来增强复用和优化动画数据组织
[IMPROVE]新增内部材质实例,便于共享和实例化
[IMPROVE]节点 TRS 事件改为复用 Node.TransformBit 中的位标记
[IMPROVE]将 UIComponent 的 priority 属性移动到 UITransform 组件上,新建 2D 节点默认添加 UITransform 组件
[IMPROVE]在 Layout 的排列方向改变时重新调整一次子节点的位置以对齐
[IMPROVE]优化 UIStaticBatchComponent 的 API 设计以及添加 clear 操作
[IMPROVE]使用 materials 属性取代 sharedMaterials 用于动画编辑
[IMPROVE]移除 INode 和 IBaseNode 接口
[IMPROVE]重构节点中 UI 相关属性的组织方式,统一迁移到一个 NodeUIProperties 类型属性 _uiProps 下
[IMPROVE]更新 Cannon 到 1.0.5 版本,修复 trigger 事件不准确问题
[IMPROVE]复用 canvas 来管理 Label 贴图
[IMPROVE]同步 Creator 中的 Editbox 组件实现和跨平台实现
[IMPROVE]重构引擎启动流程以适应可编程渲染管辖的加载需求
[IMPROVE]优化 Profiler 信息的文字尺寸计算
[IMPROVE]UICoordinateTracker 增加对 Camera 更新的监听和重新计算
[IMPROVE]在 shader 完成 link 之后立即卸除并释放
[IMPROVE]优化骨骼动画的材质编译和包围盒计算
[FIX]修复 UI 静态合批组件可能导致的 buffer 越界问题
[FIX]在部分不支持 gl.UNSIGNED_INT 的平台将顶点 index 的格式适配到 short
[FIX]修复贴图为空时的插屏逻辑
[FIX]在部分不支持的平台关闭 WebGL 2.0 和 VAO 的使用
[FIX]修复点光源的剪裁
[FIX]修复阴影在部分平台上由于 z-fighting 导致的闪烁问题
[FIX]修复 Layout 类型变化时可能导致的错误
[FIX]修复深度缓冲在部分小游戏平台上的兼容性问题
[FIX]修复多 UI Canvas 共存时的渲染闪动问题
[FIX]修复 ScrollView 运动过程中可能产生的贴图拼接缝隙问题
[FIX]修复 ScrollView 的 elastic 属性表现
[FIX]修复 Label 在 shrink 模式下宽度仍然越界的问题
[FIX]修复重置 ImageAsset 时的错误表现
[FIX]修复传递 w 为 0 时导致的 Quat 构造结果错误
[FIX]修复 ArrayBufferView 在部分设备上的动画数据解析问题
[FIX]修复 SpriteFrame 代码中的不统一性
[FIX]修复物理 body 在添加或移除 shape 后被自动重新启用的问题
[FIX]修复粒子拖尾的一些渲染问题
[FIX]修复编辑器窗口下场景视图并非半透明的问题
[FIX]修复一个由对象释放引起的混合表现错误(导致 UI 闪屏)
[FIX]修复 iOS Safari 下导航栏下拉可能导致的触摸位置错误问题
[FIX]避免 Loader 中可能出现的 ownerQueue 为空的问题
[FIX]修复对骨骼的 raycast 计算
[FIX]修复骨骼模型的释放问题
[FIX]修复了当存在全局标识符 cc 声明时(如 import * as cc from 'cc')脚本执行报错的问题
[FIX]修复了项目使用的引擎类型声明文件(cc.d.ts)某些错误
[发布文档]
https://docs.cocos.com/creator3d/manual/zh/editor/publish/publish-native.html
[Cocos Play]
https://gamebox.cocos.com/
[各个平台的发布文档]
https://docs.cocos.com/creator3d/manual/zh/editor/publish/
[参考文档]
https://docs.cocos.com/creator3d/manual/zh/tween/
[这个说明贴]
https://forum.cocos.org/t/v1-0-3/88530/2
[下载地址]
https://www.cocos.com/creator3d
以上就是 Cocos Creator 3D v1.0.3 更新内容,感谢所有开发者对 Cocos Creator 3D 的支持。良好的品质离不开细心的打磨,Cocos 会秉持脚踏实地的精神,稳步提升产品品质。
欢迎小伙伴们继续通过论坛、GitHub、Cocos 企业服务等渠道向我们提交使用反馈!
近日我们将会邀请 Cocos Creator 3D 开发者分享原生游戏开发经验,敬请关注!
3D 特别专题
技术教程 | Cocos Creator 3D 蚂蚁庄园系列技术教程 | Cocos Creator 3D 素材获取版本动态 | Cocos Creator 3D 梦想再起航版本动态 | Cocos Creator 3D v1.0 正式发布版本动态 | Cocos Creator 3D v1.0.1 正式发布